package jdbc.basic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;



//DB의 내용을 변경하는 SQL(insert, update, delete) 실행 테스트.
public class JDBCUpdateTest {
	public static void main(String[] args) {
		String driverClass = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
		String user = "scott";
		String password = "tiger";
		//1. Driver Loading - Program 시작에서 종료까지 한번만 하면 됨.
		try {
			Class.forName(driverClass);//이게 뭐여, 글고 왜 익셉션 오류가 나는지 설명해라.
			System.out.println("드라이버 로딩 성공");
		} catch (ClassNotFoundException e) {
			System.out.println("드라이버 로딩 실패");
			e.printStackTrace();
			return;
		}
		Connection conn = null;
		Statement stmt = null;
		
		try{
			//2.Database 연결
			conn = DriverManager.getConnection(url,user,password);
			System.out.println("데이터베이스와 연결 성공");
			
			//3.Statement 생성 - 쿼리 전송
			stmt = conn.createStatement();
			
			//4. 쿼리 전송
			String insertSQL = "insert into department values('d-60','농부','판교')";
			int cnt = stmt.executeUpdate(insertSQL);//return 값 : 변경된 row 수
			System.out.println(cnt+"개의 부서가 등록됨");
			String updateSQL = "update department set location = '파주' where department_id = 'd-60'";
			cnt = stmt.executeUpdate(updateSQL);
			System.out.println(cnt+"개의 부서정보가 변경됨");
			String deleteSQL = "delete from department where department_id in('d-58','d-59')";
			cnt = stmt.executeUpdate(deleteSQL);
			System.out.println(cnt + "개의 부서가 삭제됨");
		
			
		}catch(Exception e){
			e.printStackTrace();
		}finally {
			//5.연결 닫기
			if(conn != null)
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(stmt != null)
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
		}
	}
}
